home *** CD-ROM | disk | FTP | other *** search
/ NASA Climatology Interdisciplinary Data Collection / NASA Climatology Interdisciplinary Data Collection - Disc 4.iso / software / grads / lib / functions / colorbar.gf < prev    next >
Encoding:
Text File  |  1994-02-17  |  1.7 KB  |  96 lines

  1.  
  2. *
  3. *  Script to plot a colorbar
  4. *
  5. function colorbar (shdinfo)
  6. *
  7. *  Check shading information
  8. *
  9.   if (subwrd(shdinfo,1)='None') 
  10.     say 'Cannot plot color bar: No shading information'
  11.     return
  12.   endif
  13. *  Get plot size info
  14. *
  15.   'query gxinfo'
  16.   say result
  17.   rec2 = sublin(result,2)
  18.   rec3 = sublin(result,3)
  19.   rec4 = sublin(result,4)
  20.   xsiz = subwrd(rec2,4)
  21.   ysiz = subwrd(rec2,6)
  22.   ylo = subwrd(rec4,4)
  23.   xhi = subwrd(rec3,6)
  24.   xd = xsiz - xhi
  25.   say ' xs   'xsiz' 'ysiz' 'ylo' 'xhi' 'xd 
  26. *
  27. *  Decide if horizontal or vertical color bar
  28. *  and set up constants.
  29. *
  30. *  if (ylo<0.6 & xd<1.0) 
  31. *    say "Not enough room in plot for a colorbar"
  32. *    return
  33. *  endif
  34.   cnum = subwrd(shdinfo,5)
  35.  
  36.   ylo=0.5
  37.   xd=1.0
  38.   xhi=7.5
  39.   ysiz=11
  40.   xsiz=8
  41.   vert=1
  42.  
  43.   if (vert=1)
  44.     xl = xhi + xd/2 - 0.4
  45.     xr = xl + 0.2
  46.     xwid = 0.2
  47.     ywid = 0.5
  48.     if (ywid*cnum > ysiz*0.8) 
  49.       ywid = ysiz*0.8/cnum
  50.     endif
  51.     ymid = ysiz/2
  52.     yb = ymid - ywid*cnum/2
  53.     'set string 1 l 5'
  54.     vert = 1
  55.   else
  56.     ymid = ylo/2
  57.     yt = ymid + 0.2
  58.     yb = ymid
  59.     xmid = xsiz/2
  60.     xwid = 0.8
  61.     if (xwid*cnum > xsiz*0.8)
  62.       xwid = xsiz*0.8/cnum
  63.     endif
  64.     xl = xmid - xwid*cnum/2
  65.     'set string 1 tc 5'
  66.     vert = 0
  67.   endif
  68. *
  69. *  Plot colorbar
  70. *
  71.   'set strsiz 0.12 0.13'
  72.   num = 0
  73.   while (num<cnum) 
  74.     rec = sublin(shdinfo,num+2)
  75.     col = subwrd(rec,1)
  76.     hi = subwrd(rec,3)
  77.     'set line 'col
  78.     if (vert) 
  79.       yt = yb + ywid
  80.     else 
  81.       xr = xl + xwid
  82.     endif
  83.     'draw recf 'xl' 'yb' 'xr' 'yt
  84.     if (num<cnum-1)
  85.       if (vert) 
  86.         'draw string '%(xr+0.05)%' 'yt' 'hi
  87.       else
  88.         'draw string 'xr' '%(yb-0.05)%' 'hi
  89.       endif
  90.     endif
  91.     num = num + 1
  92.     if (vert); yb = yt;
  93.     else; xl = xr; endif;
  94.   endwhile
  95.